require 'singleton'
require 'date'
require 'view/format'
require 'controller/poller_exception'
require 'model/eleitor'
require 'controller/eleicao_bo'
require 'model/eleicao_dao'

class EleicaoView

  include Singleton

  def initialize
    self
  end

  def get_eleicao # Verifica qual a eleição q está em andamento
    EleicaoDao.instance.find_ultima_eleicao
  end


  def nova_eleicao # Cria uma nova eleição
    EleitorDao.instance.reset # faz com que todos os eleitores fiquem com a flag VOTOU false.
    Format.br
    print "Presidente da Seção Eleitoral [titulo]: "
    presidente = Eleitor.new
    presidente.titulo = gets.to_i
    Format.br
    obj = EleicaoBo.instance.save(presidente)
    if obj.is_a? PollerException
      puts "[VIEW] Ocorreu um erro: #{obj.msg}"
      puts " + #{obj.err}"
      Format.br
    else
      puts "Eleição criada com sucesso."
      Format.br
    end
  end

  def listar_eleicoes
    Format.br
    a_eleicoes = EleicaoDao.instance.find_all
    a_eleicoes.each do |row|
      puts "Inicio da Eleição: #{row.inicio_eleicao.chop}, Presidente: #{row.presidente}"
    end
    Format.br
  end
end
